package com.osce.ex.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.csce.domain.entity.exam.ExExam;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 考试管理Mapper接口
 *
 * @author zzx
 * @since 2023-08-09
 */
@Repository
public interface ExExamMapper extends BaseMapper<ExExam> {

    /**
     * 查询考试管理
     *
     * @param id 考试管理主键
     * @return 考试管理
     */
    ExExam selectExExamById(Long id);

    /**
     * 查询考试管理列表
     *
     * @param exExam 考试管理
     * @return 考试管理集合
     */
    List<ExExam> selectExExamList(ExExam exExam);

    /**
     * 新增考试管理
     *
     * @param exExam 考试管理
     * @return 结果
     */
    int insertExExam(ExExam exExam);

    /**
     * 修改考试管理
     *
     * @param exExam 考试管理
     * @return 结果
     */
    int updateExExam(ExExam exExam);

    /**
     * 删除考试管理
     *
     * @param id 考试管理主键
     * @return 结果
     */
    int deleteExExamById(Long id);

    /**
     * 批量删除考试管理
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteExExamByIds(Long[] ids);

    int insertExExamQuestion(@Param("id") Long id, @Param("questionIds") List<Long> questionIds);

    /**
     * 删除考试下的题目-子表
     */
    void deleteExExamQuestionByIds(@Param("ids") Long... ids);

    List<Long> selectExQuestionIdsById(@Param("id") Long id);

    /**
     * 删除考试下的预约记录
     */
    int deleteExExamRecordByExamId(@Param("ids") Long... ids);
}
